/*
 * wk_list_types.h
 *
 *  Created on: 2012-3-8
 *      Author: tianmax
 */

#ifndef __WK_LIST_TYPES_H__
#define __WK_LIST_TYPES_H__

#include "wk_element.h"
///**
// * 给List数据元素类型起别名
// * 这样做的目的是便于直接将通用List变为专用List
// */
//typedef void* WPElement;

/*定义节点结构体*/
struct wk_list_node{
	WPElement e;
	struct wk_list_node* next;
};

/*给节点类型起别名*/
typedef struct wk_list_node WListNode;
typedef struct wk_list_node* WPListNode;

/**
 * 定义该种数据类型的类型
 */
struct wk_list{
	WPListNode head;
	WPListNode current;
	wk_element_comp comp;
};
typedef struct wk_list WList;

///**
// * 给比较函数指针类型起别名
// */
//typedef int (*wk_list_comp)(WPElement e1,WPElement e2);
//
///**
// * 给遍历操作函数指针起别名
// * ctx上下文
// */
//typedef void* (*wk_list_iterate_do)(WPElement e1,void* ctx);

/**
 * 给遍历器操作函数指针起别名
 */
typedef void* (*wk_list_iterator)(WList* list,wk_element_iterate_do iterate_do,void* ctx);


#endif /* WK_LIST_TYPES_H_ */
